The present disclosure relates in general to methods for memory initialization, and in particular to methods for initializing memories with different hardware information.
Computers generally comprise a CPU, chipsets, a memory controller and buses. CPU processes most operations of the computer. Chipsets support the operation of the CPU. Generally, the chipset comprises controllers for transmission of data between the CPU and other devices. The memory controller is a part of the chipset, establishing data transmission between memory and the CPU. Buses connect the CPU, memory, and other I/O devices. The bus determines the operating speed of a main board. In response to different data transmission requirements, different kinds of buses are provided. A memory bus connects the memory controller and the memory module.
During boot, memory initialization comprises setting memory operating frequency and column address strobe latency (CL). When a plurality of memories are connected to the memory controller, integration for memory operating frequencies and CLs of memories is required, especially when hardware information of the memories is different.
When memory initialization is correct, all memories operate successfully. Conversely, when memory initialization fails, system operation is unstable or cannot complete boot operation, and erroneous initialized memories are undetected.
Conventional technology obtains memory initialization parameters by reading serial presence detect (SPD) codes stored in EEPROM of the memory. Thereby, information required for memory initialization is obtained.
Using two double data rate-synchronous DRAMs (DDR) controlled by the memory controller as an example, the operating frequency of the first DDR can be 400 MHz, 333 MHz and 266 MHz, and its CL can be 3 clocks, 2.5 clocks and 2 clocks, and the operating frequency of the second DDR can be 400 MHz, and its CL can be 2.5 clocks. BIOS can initialize the DDRs operating at 333 MHz and 2.5 CL according to SPD. Thus, memory capacity and efficiency are optimized.
Conventional technology fails to optimize all memories when no operating frequency or CL is indicated by SPDs applied to all memories. In addition, since memory optimization is performed according to the SPD of memory, memory optimization fails when SPD does not correspond to real memory information.